#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：15.使用闭包得方式完成需求.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-10-25 16:00
'''
"""
    1.外部函数person接收了一个参数name
    2.在person函数得内部定义了say函数并接收一个参数content，因为say函数在person函数内部，say函数为内部函数
    3.内部函数可以访问外部函数得参数
    4.外部函数返回了内部函数得引用
    
闭包的含义：
    1.一个函数在另外一个函数的内部
    2.内部函数使用了外部函数的参数
    3.外部函数返回了内部函数的地址
"""

def person(name):
    def say(content):
        print(f"({name})：{content}")
    print(id(say))
    return say

anna = person("安娜")
ss = person("双双")
print(id(anna))
anna("吃饭了吗")
ss("没有")
